﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using Co9320.NamaAlert.Contract;

namespace Client.ViewerModel
{
    class Program
    {
        static void Main(string[] args)
        {
            
            var binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None);
            var factory = new ChannelFactory<IApplicationService>(binding,
                new EndpointAddress("net.pipe://Co9320/NamaAlert/API"));
            var client = factory.CreateChannel();

            try
            {
                // アプリケーション登録
                client.Register(new Guid("1C2F8706-9970-4C7A-884E-0BEB9F6CB870"), @"C:\Users\Owner\Desktop\pos2-0041\NiconamaCommentViewer.exe");
                
                // お気に入りに登録されているか
                Console.WriteLine(client.IsFavorite("co1"));

                // お気に入り追加
                client.AddFavorite("co1");

                // お気に入りの放送局
                var favorites = client.GetFavoriteStations();
                foreach (var s in favorites) {
                    Console.WriteLine(s.Name);
                }

                // 現在通知済みの放送
                var programs = client.GetAlertedLivePrograms();
                foreach (var p in programs) {
                    Console.WriteLine(p.Title);
                }

                // 票数取得
                // /vote showresult per 250 250 250 250 100 の場合
                var pers = new List<int>();
                pers.Add(250);
                pers.Add(250);
                pers.Add(250);
                pers.Add(250);
                var list = client.GetVoteCountCombination(pers);
                // 最低票組み合わせ数がリストで返る (この合計値 と 投票率 で視聴者数が求まる)
                foreach (int i in list) {
                    Console.WriteLine(i);
                }
            }
            catch (EndpointNotFoundException ex)
            {
                Console.WriteLine(ex.Message);
            }


            Console.ReadKey();
        }
    }
}
